package icu.qx.pro.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import icu.qx.pro.domain.gbs.GbsGood;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 生产工单对象 pro_work_order
 *
 * @author yong
 * @date 2024-07-01
 */
public class ProWorkOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 生产工单code
     */
    private String workOrderCode;

    /**
     * schedule_code
     */
    @Excel(name = "schedule_code")
    private String scheduleCode;
    private ProSchedule proSchedule;
    private String scheduleName;

    /**
     * 工单名称
     */
    @Excel(name = "工单名称")
    private String workOrderName;

    private BigDecimal workOrderProgress;

    /**
     * 工单备注
     */
    @Excel(name = "工单备注")
    private String workOrderDesc;

    /**
     * 工单状态 0待排产 1未开始 2进行中 3已完成 4已暂停 5已关闭
     */
    @Excel(name = "工单状态 0待排产 1未开始 2进行中 3已完成 4已暂停 5已关闭")
    private String workOrderStatus;

    /**
     * 关闭原因
     */
    @Excel(name = "关闭原因")
    private String workOrderCloseR;

    /**
     * 产品id
     */
    @Excel(name = "产品id")
    private String workOrderProduct;
    private GbsGood gbsGood;

    /**
     * 工艺路线id
     */
    @Excel(name = "工艺路线id")
    private String workOrderRoute;
    private String workOrderRouteName;

    /**
     * 工单bom
     */
    @Excel(name = "工单bom")
    private String workOrderBom;

    /**
     * 工单bomversion
     */
    @Excel(name = "工单bomversion")
    private String workOrderBVersion;

    /**
     * 工单批次
     */
    @Excel(name = "工单批次")
    private String workOrderBatch;

    /**
     * 计划数量
     */
    @Excel(name = "计划数量")
    private BigDecimal workOrderNum;

    /**
     * 完成数量
     */
    @Excel(name = "完成数量")
    private BigDecimal workOrderComplete;

    /**
     * 计划开工时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "计划开工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date workOrderStart;

    /**
     * 计划完工时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "计划完工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date workOrderEnd;

    /**
     * 需求时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "需求时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date workOrderRequire;

    /**
     * 实际开工时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "实际开工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date workOrderRStart;

    /**
     * 实际完工时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @Excel(name = "实际完工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date workOrderREnd;

    List<ProWorkTask> proWorkTaskList;

    public BigDecimal getWorkOrderProgress() {
        return workOrderProgress;
    }

    public void setWorkOrderProgress(BigDecimal workOrderProgress) {
        this.workOrderProgress = workOrderProgress;
    }

    public ProSchedule getProSchedule() {
        return proSchedule;
    }

    public void setProSchedule(ProSchedule proSchedule) {
        this.proSchedule = proSchedule;
    }

    public Date getWorkOrderRequire() {
        return workOrderRequire;
    }

    public void setWorkOrderRequire(Date workOrderRequire) {
        this.workOrderRequire = workOrderRequire;
    }

    public List<ProWorkTask> getProWorkTaskList() {
        return proWorkTaskList;
    }

    public void setProWorkTaskList(List<ProWorkTask> proWorkTaskList) {
        this.proWorkTaskList = proWorkTaskList;
    }

    public String getScheduleName() {
        return scheduleName;
    }

    public void setScheduleName(String scheduleName) {
        this.scheduleName = scheduleName;
    }

    public String getWorkOrderRouteName() {
        return workOrderRouteName;
    }

    public void setWorkOrderRouteName(String workOrderRouteName) {
        this.workOrderRouteName = workOrderRouteName;
    }

    public GbsGood getGbsGood() {
        return gbsGood;
    }

    public void setGbsGood(GbsGood gbsGood) {
        this.gbsGood = gbsGood;
    }

    public void setWorkOrderCode(String workOrderCode) {
        this.workOrderCode = workOrderCode;
    }

    public String getWorkOrderCode() {
        return workOrderCode;
    }

    public void setScheduleCode(String scheduleCode) {
        this.scheduleCode = scheduleCode;
    }

    public String getScheduleCode() {
        return scheduleCode;
    }

    public void setWorkOrderName(String workOrderName) {
        this.workOrderName = workOrderName;
    }

    public String getWorkOrderName() {
        return workOrderName;
    }

    public void setWorkOrderDesc(String workOrderDesc) {
        this.workOrderDesc = workOrderDesc;
    }

    public String getWorkOrderDesc() {
        return workOrderDesc;
    }

    public void setWorkOrderStatus(String workOrderStatus) {
        this.workOrderStatus = workOrderStatus;
    }

    public String getWorkOrderStatus() {
        return workOrderStatus;
    }

    public void setWorkOrderCloseR(String workOrderCloseR) {
        this.workOrderCloseR = workOrderCloseR;
    }

    public String getWorkOrderCloseR() {
        return workOrderCloseR;
    }

    public void setWorkOrderProduct(String workOrderProduct) {
        this.workOrderProduct = workOrderProduct;
    }

    public String getWorkOrderProduct() {
        return workOrderProduct;
    }

    public void setWorkOrderRoute(String workOrderRoute) {
        this.workOrderRoute = workOrderRoute;
    }

    public String getWorkOrderRoute() {
        return workOrderRoute;
    }

    public void setWorkOrderBom(String workOrderBom) {
        this.workOrderBom = workOrderBom;
    }

    public String getWorkOrderBom() {
        return workOrderBom;
    }

    public void setWorkOrderBVersion(String workOrderBVersion) {
        this.workOrderBVersion = workOrderBVersion;
    }

    public String getWorkOrderBVersion() {
        return workOrderBVersion;
    }

    public void setWorkOrderBatch(String workOrderBatch) {
        this.workOrderBatch = workOrderBatch;
    }

    public String getWorkOrderBatch() {
        return workOrderBatch;
    }

    public void setWorkOrderNum(BigDecimal workOrderNum) {
        this.workOrderNum = workOrderNum;
    }

    public BigDecimal getWorkOrderNum() {
        return workOrderNum;
    }

    public void setWorkOrderComplete(BigDecimal workOrderComplete) {
        this.workOrderComplete = workOrderComplete;
    }

    public BigDecimal getWorkOrderComplete() {
        return workOrderComplete;
    }

    public void setWorkOrderStart(Date workOrderStart) {
        this.workOrderStart = workOrderStart;
    }

    public Date getWorkOrderStart() {
        return workOrderStart;
    }

    public void setWorkOrderEnd(Date workOrderEnd) {
        this.workOrderEnd = workOrderEnd;
    }

    public Date getWorkOrderEnd() {
        return workOrderEnd;
    }

    public void setWorkOrderRStart(Date workOrderRStart) {
        this.workOrderRStart = workOrderRStart;
    }

    public Date getWorkOrderRStart() {
        return workOrderRStart;
    }

    public void setWorkOrderREnd(Date workOrderREnd) {
        this.workOrderREnd = workOrderREnd;
    }

    public Date getWorkOrderREnd() {
        return workOrderREnd;
    }
}
